﻿'
' Boogaloo® - http://www.mindfly.com
' Copyright (c) 2008
' by Mindfly, Inc.
'
' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
' documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
' to permit persons to whom the Software is furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in all copies or substantial portions 
' of the Software.
'
' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
' INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
' DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
' SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
' SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
' WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
' THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Imports System.Xml
Imports Boogaloo.Core
Imports Boogaloo.Core.UI
Imports Boogaloo.Core.BLL

Namespace UI.Controls


    Public Class HtmlRetriever
        Inherits Control
        Implements INamingContainer

        Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
            MyBase.Render(writer)

            Dim html As String = GetHelpTextFromDoc()
            If String.IsNullOrEmpty(html) Then
                Me.Visible = False
            Else
                Me.Visible = True
                writer.Write(html)
            End If

        End Sub

        Private Function GetHelpTextFromDoc() As String
            Dim msg As String = String.Empty
            Try
                Dim nl As XmlNodeList = html_include_doc.DocumentElement.SelectNodes(String.Format("//{0}/include[@for='{1}']", page_group, html_for))
                If nl.Count Then
                    msg = nl(0).InnerText
                End If
            Catch ex As Exception

            End Try
            Return msg
        End Function


        Private ReadOnly Property html_include_doc() As XmlDocument
            Get
                Dim key As String = "boogaloo_admin_helptext_config"

                Dim current As HttpContext = HttpContext.Current
                Dim doc As XmlDocument = Nothing
                If current.Cache(key) IsNot Nothing Then
                    doc = CType(current.Cache(key), XmlDocument)
                Else
                    doc = New XmlDocument
                    Dim path As String = String.Format("{0}/boogaloo_admin_helptext.config", current.Server.MapPath(CoreSettings.GetSetting("ADMIN_HelpText")))
                    doc.Load(path)
                    current.Cache.Insert(key, doc, New CacheDependency(path))
                End If
                Return doc
            End Get

        End Property



        Private _html_for As String = String.Empty
        Public Property html_for() As String
            Get
                Return _html_for
            End Get
            Set(ByVal value As String)
                _html_for = value
            End Set
        End Property

        Private _page_group As String = "site"
        Public Property page_group() As String
            Get
                Return _page_group
            End Get
            Set(ByVal value As String)
                _page_group = value
            End Set
        End Property


    End Class


End Namespace